#include <stdio.h>


#define IN 1 /*在单词内*/
#define OUT 0 /*在单词外*/


/* 统计输入的行数、单词数、字符数和空白符的个数 */
int main() {
    // 初始化变量
    int c, nl, nw, nc, nb, state;
    state = OUT; // 设置初始状态为OUT，表示在单词之外
    nl = nw = nc = nb = 0; // 初始化计数器
    // 读取输入直到文件结束
    while ((c = getchar()) != EOF) {
        ++nc; // 每读取一个字符，字符计数器加1
        if (c == '\n')
            ++nl; // 如果读取到换行符，行计数器加1
        if (c == ' ' || c == '\n' || c == '\t') {
            state = OUT; // 如果读取到空白符，设置状态为OUT
            ++nb; // 统计空白符
        } else if (state == OUT) {
            state = IN; // 如果状态为OUT且读取到非空白符，设置状态为IN
            ++nw; // 单词计数器加1
        }
    }
    // 输出统计结果
    printf("行数: %d, 单词数: %d, 字符数: %d, 空白符数: %d\n", nl, nw, nc, nb);
    return 0; // 程序正常结束
}




